<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src='https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js'></script>
</head>

<body>
    <div id="app">
        <!-- Vue的事件函数，插值语法中可以写一个函数，也可以写函数调用（React中只能是函数，如果写成函数调用，必须要用高阶函数） -->
        <!-- 1、如果不加括号，则在事件函数中接收的一个参数式event事件对象（无需传实参） -->
        <button v-on:click="fn1">点击1</button>
        <!-- 2、如果加括号了，必须传递实参$event，事件函数中才能接收事件对象 -->
        <button v-on:click="fn2($event)">点击2</button>
        <!-- 3、如果除了事件对象以外，还需要传递第二个参数，则直接传递两个实参，在事件函数中用形参接收（没有位置限制） -->
        <button v-on:click="fn3($event,3)">点击3</button>
    </div>
    <script>
        /* 设置为 false 以阻止 vue 在启动时生成生产提示 */
        Vue.config.productionTip = false;
        //实例化Vue
        const vm = new Vue({
            //el代表的是容器,值是一个选择器或者是一个元素,一般使用id(因为id是唯一的)
            el: "#app",
            //data必须声明为返回一个初始数据对象的函数,因为数组可能被用来创建多个实例.如果data仍然是一个存粹的对象,则所有的实例将共享引用同一个数据对象!通过提供data函数,每次创建一个新实例后,我们能够调用data函数,从而返回初始数据的一个全新副本数据对象
            data() {
                return {

                }
            },
            methods: {
                fn1(e) {
                    console.log(e,"e");
                },
                fn2(e) {
                    console.log(e,"e");
                },
                fn3(e,a) {
                    console.log(e,"e");
                    console.log(a,"a");
                },
            },
        })
    </script>
</body>

</html>